home *** CD-ROM | disk | FTP | other *** search
/ Nebula 2 / Nebula Two.iso / Drivers / ParallelPortDriver1.5 / README < prev   
Text File  |  1996-03-13  |  5KB  |  114 lines

  1. README-file for the ParallelPort-driver Version 1.5
  2. ===================================================
  3.  
  4. What does it do?
  5.     Par.config is a replacement for NeXT's ParallelPort.config.
  6.  
  7. Who needs this driver?
  8.     If you have no problems with NeXT's driver, you probably don't need
  9.     Par.config. There are a few systems where NeXT's driver does not work
  10.     at all or does not load reliably at boot time. Par.config is intended
  11.     for these rare cases. If you are really short of IRQs, you might want
  12.     to save the printer interrupt and use this driver. It might also be
  13.     interesting for you (as an example) if you are planning to write your
  14.     own kernel server.
  15.  
  16. What do I need to run Par.config?
  17.     You need NEXTSTEP User for Intel Processors version 3.2 or 3.3. If
  18.     you run 3.1 you probably won't need Par.config anyway, because the
  19.     driver that shipped with this version worked more reliably (at least
  20.     on my machine). You will also need NEXTSTEP Developer if you want to
  21.     recompile the sources.
  22.  
  23. What changed since version 1.2?
  24.     * A race condition was finally found, which caused occasional system
  25.       panics or hangs.
  26.     * The interrupt is supervised now. If it does not work correctly, a
  27.       message is printed to /usr/adm/messages telling you about it.
  28.     * If the interrupt does not work, printing is done from a timer interrupt
  29.       (contribution by Axel Habermann <kiwi@buran.fb10.tu-berlin.de>).
  30.     * Statistics about each print job are written to /usr/adm/messages. This
  31.       is also a contribution by Axel Habermann.
  32.     * rewrote much of the README file
  33.  
  34. How to install the driver
  35. =========================
  36. 1.) Compile the distributed source code.
  37.    This step is optional since the package contains a compiled version.
  38.    You will, however, need to recompile if you want to change 'config.h'.
  39.    You need NEXTSTEP Developer to do this.
  40.    Simply load PB.project (in the main-folder, not that in one of the
  41.    subprojects *.tproj) into ProjectBuilder by double-clicking it and
  42.    click on 'BUILD'. This compilation need not be done as root. Maybe you
  43.    will get the compiler-error
  44.  
  45.  /NextDeveloper/Headers/bsd/sys/user.h:40: header file 'kern/lock.h' not found
  46.  
  47.    this is an error in the NEXTSTEP-Headers, a possible workaround is to
  48.    make a link from /NextDeveloper/Headers/kernserv to
  49.    /NextDeveloper/Headers/kern (must be done as root!).
  50.    The compilation-process should leave a directory 'Par.config' in the
  51.    main-folder. If you want to save disc-space, you can run the command
  52.    'strip Par.config/PostLoad' now.
  53.  
  54. 2.) Double-click on 'Par.config', the application 'Configure' will be
  55.    started and ask you to install Par; confirm this. You will be asked
  56.    for the root-password, because drivers must be installed as root.
  57.    After installing the driver you can remove the original NeXT-driver
  58.    from the list of active drivers in the 'Other'-section of
  59.    'Configure.app' and add the 'New Parallel Port Driver'. The default
  60.    settings should be OK for the usual configuration.
  61.  
  62. 3.) save the configuration and reboot the machine
  63.  
  64. Compile time options
  65. ====================
  66. There are two options available in config.h:
  67. #define ALLOW_SET_TIMEOUT
  68.     This option enables the PPIOCSETTIMO-ioctl. This is not normally
  69.     desirable! Most of the output filters that drive /dev/pp0 use this
  70.     ioctl to set the timeout to a ridiculous low value (thanks to Marc
  71.     Salvatori <salvo@eskimo.com> who helped finding this out).
  72. #define DEBUG
  73.     This option enables debug output into /usr/adm/messages. All calls of
  74.     open, read, write and close are printed out as well as the success on
  75.     return. This may be a great help in debugging the driver itself.
  76.  
  77. One option can be set in Par_reloc.tproj/Par.m:
  78. #define PP_TIMEOUT  180
  79.     This is the time (in seconds) the driver waits for a busy printer. If
  80.     you make this time too short, you won't have the time to refill the
  81.     paper feed if it is empty. If you make it too long, you will have to
  82.     wait this time until a process which prints to a busy printer (or a
  83.     switched off printer) can be killed. 180 seconds (equal to 3 minutes)
  84.     were chosen as a compromise.
  85.  
  86. Troubleshooting
  87. ===============
  88. Most problems are related to IRQ and IO-address problems. IO-address
  89. problems are not checked at all. IRQ-problems are checked during
  90. printing. If your IRQ does not work, you get a message like this:
  91.  
  92.     ParallelPort0: IRQ 7 (or printer's ACK line) does not work!
  93.  
  94. The physical reason for this is that no interrupt is received when the
  95. printer changes from busy to non-busy state. Possible reasons for this
  96. are:
  97.     * The IRQ is not jumpered correctly
  98.     * The printer cable is damaged (ACK-line)
  99.     * The power management on your motherboard is enabled
  100. I have no explanation for the last reason, but power management has an
  101. influence on how the IRQs work on some systems.
  102.  
  103. It is always best to cure the cause of a problem. If your interrupt does not
  104. work, you should try to find the cause. However, this driver does not depend
  105. on the interrupt any more. If you can't find the problem, it should still
  106. work.
  107.  
  108. If your system crashes with a system panic or just hangs during printing,
  109. mail me. This problem should be solved.
  110.  
  111. --
  112. Christian Starkjohann <cs@hal.kph.tuwien.ac.at> or <cs@ds1.kph.tuwien.ac.at>
  113. finger cs@hal.kph.tuwien.ac.at for PGP Public Key.
  114.